Facilitating communications between computer users across a network

ABSTRACT

An icon or file is provided to facilitate communications across a network. The icon or file represents a contact or set of contacts and is separate from the communications program&#39;s user interface. At least one action is executed in response to an operation performed on the icon or a command issued to the file. The actions may generally include, for example, retrieving profile information about the contact, setting an alert to indicate that the contact&#39;s network/login status has changed (e.g., login, logout, or idle), or performing communications with the contact. The action may be the same action that would be executed in response to an operation performed on a representation of the contact or set of contacts in a user interface of a communications program.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. Provisional ApplicationSerial No. 60/428,726, filed on Nov. 25, 2002, which is herebyincorporated by reference.

TECHNICAL FIELD

[0002] This description relates to electronic communications.

BACKGROUND

[0003] With the advent of the Internet and a decline in computer prices,many people are communicating with one another through computersinterconnected by networks. A number of different communicationsprograms have been developed to facilitate such communications betweencomputer users. These programs typically have a user interface thatcontains representations of a user's contacts (i.e., other users who areconnected to the network with whom the user of the program cancommunicate). A user may invoke communications with a particular contactby selecting a representation of that contact that is maintained in thecommunications program's user interface. Similarly, the user may selecta contact's representation to cause other actions to be executed withrespect to the contact (e.g., set an alert to let the user know when thecontact is online).

SUMMARY

[0004] In one general aspect, an icon is provided to facilitate networkcommunications between users of at least one communications program. Theicon represents a contact or set of contacts and is independent of theuser interface of the communications program. At least one action isexecuted in response to an operation performed on the icon, which actionis the same as an action that would be executed in response to anoperation performed on a representation of the contact or set ofcontacts in a user interface of the communications program.

[0005] In another aspect, a file is provided to facilitatecommunications across a network between users of at least onecommunications program. The file is associated with a contact or set ofcontacts. When a command is issued to the file, at least one action isexecuted in response to the command. The action is the same as an actionthat would be executed in response to an operation performed on arepresentation of the contact or set of contacts in a user interface ofthe communications program.

[0006] In another general aspect, a first icon is provided to facilitatethe transfer of information between computer users on a network. Thefirst icon represents a contact or set of contacts and is separate froman application user interface. When a second icon is dropped onto thefirst icon, the information represented by the second icon isautomatically transmitted to the contact or set of contacts representedby the first icon.

[0007] Implementations of the various aspects may include one or more ofthe following features. For example, the icon that represents thecontact or set of contacts may be independent of any application userinterface. The file associated with a contact or set of contacts may berepresented by an icon and the issued commands may be graphicaloperations performed on the icon representing the file.

[0008] The operations may comprise associating information to betransmitted to the contact or set of contacts with the icon representingthe contact(s) or the icon representing the file. The information may beassociated by dropping an icon representing the information to betransmitted to the contact or set of contacts on the icon. Whether intext or file form, the information may be transmitted by a communicationsession directly established between the users, or it may be transmittedvia a host server.

[0009] The icon that represents a contact or set of contacts or the iconthat represents the file may be available when the communicationsprogram is not executing. The communications program may be initiated inresponse to performance of an operation on the icon that represents acontact or set of contacts.

[0010] The communications program may be an electronic mail (e-mail)program, instant messaging (IM) program, file transfer protocol (FTP)program, voice-over-IP (VoIP) program, etc.

[0011] Implementations of the described techniques may include hardware,a method or process, or computer software on a computer-accessiblemedium.

[0012] The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

[0013]FIG. 1 is a block diagram illustrating an exemplary networkedcomputing environment that supports communications between computerusers.

[0014]FIG. 2 is a computer desktop illustrating an example of acommunications program interface presented to a user of thecommunications program.

[0015]FIG. 3A is a flow chart illustrating a process used to facilitatecommunications between users across a network.

[0016]FIG. 3B is a flow chart illustrating another process used tofacilitate communications between users across a network.

[0017]FIG. 4 is a flow chart illustrating a process for usingdrag-and-drop features with an icon representing a contact for actionssuch as transferring files or text to the contact.

[0018] FIGS. 5A-5F are computer desktops illustrating implementations ofthe described techniques for an instant messaging program.

[0019] FIGS. 6A-6C are computer desktops illustrating a drag-and-dropmanner of creating an icon that represents a contact in oneimplementation for an instant messaging program.

[0020] FIGS. 7A-7C are computer desktops illustrating a drag-and-dropmanner of adding a contact to the contact list of an instant messageprogram using an icon that represents the contact.

[0021]FIG. 8 is a computer desktop illustrating an implementation inwhich multiple icons, each representing either a contact or set ofcontacts, are situated in a desktop file folder.

[0022] Like reference symbols in the various drawings indicate likeelements.

DETAILED DESCRIPTION

[0023] Generally, an icon that is independent of a communicationprogram's user interface is provided on a client system to facilitate aclient system user in communicating with other network users. The iconrepresents an identity or set of identities with whom the person desiresto communicate (i.e., contacts or buddies). The icon provides aninterface for initiating actions related to the identity or set ofidentities from outside of a communication application user interface.The actions are initiated by performing operations on the icon. Suchoperations may generally include, for example, “double-clicking” on theicon, “right-clicking” on the icon, or dragging and dropping files ontothe icon. The resulting actions may generally include, for example,retrieving profile information about the contact, setting an alert toindicate that the contact's network/login status has changed (e.g.,login, logout, or idle), or performing communications with the contact,such as sending an instant message, sending a file, establishing a VoIPcommunication session, or sending an e-mail. Thus, the icon may allow auser to initiate and perform actions relating to a contact without usinga communication program's user interface and whether or not thecommunication program is running when the operations are performed onthe icon.

[0024] In another implementation, a file is provided that is associatedwith a contact or set of contacts. Commands can be issued to the file.In response to the commands, an action relating to communications withthe contacts or set of contacts is initiated. The resulting actions maygenerally include, for example, retrieving profile information about thecontact, setting an alert to indicate that the contact's network/loginstatus has changed (e.g., login, logout, or idle), or performingcommunications with the contact, such as sending an instant message,sending a file, establishing a VoIP communication session, or sending ane-mail.

[0025] The file may be implemented in either a graphical ornon-graphical operating system environment. When the file is implementedin a graphical environment, an icon may be used to represent the file.In this case, the commands may generally include, for example,“double-clicking” on the icon, “right-clicking” on the icon, draggingand dropping files onto the icon, or dragging and dropping the icon ontoanother icon or onto the user interface of an application. When the fileis implemented in a non-graphical environment, commands may be issued tothe file from a command line. The commands may take the form ofparameters passed to the file from the command line.

[0026]FIG. 1 illustrates an exemplary networked computing environment100 that supports communications between computer users. Computer usersare distributed geographically and communicate using client systems 102.A network 104 interconnects client systems 102. Client systems 102 areconnected to network 104 through various communication mediums, such asa modem connected to a telephone line (using, for example, serial lineinternet protocol (SLIP) or point-to-point protocol (PPP)) or a directinternetwork connection (using, for example, transmission controlprotocol/internet protocol (TCP/IP)).

[0027] Each of the client systems 102 may be implemented using, forexample, a general-purpose computer capable of responding to andexecuting instructions in a defined manner, a personal computer, aspecial-purpose computer, a workstation, a server, a device, acomponent, or other equipment or some combination thereof capable ofresponding to and executing instructions. Client systems 102 may receiveinstructions from, for example, a software application, a program, apiece of code, a device, a computer, a computer system, or a combinationthereof, which independently or collectively direct operations, asdescribed herein. These instructions may take the form of one or morecommunications programs that facilitate communications between the usersof client systems 102. For instance, such communications programs mayinclude e-mail programs, IM programs, FTP programs, VoIP programs, etc.The instructions may be embodied permanently or temporarily in any typeof machine, component, equipment, storage medium, or propagated signalthat is capable of being delivered to the client systems 102.

[0028] Clients systems 102 include a communications interface (notshown) used by the communications programs to send communicationsthrough network 104. The communications may include e-mail, audio data,video data, general binary data, or text data (e.g., encoded in AmericanStandard Code for Information Interchange (ASCII) format).

[0029] The network 104 typically includes a series of portalsinterconnected through a coherent system. Examples of the network 104include the Internet, Wide Area Networks (WANs), Local Area Networks(LANs), analog or digital wired and wireless telephone networks (e.g. aPublic Switched Telephone Network (PSTN)), an Integrated ServicesDigital Network (ISDN), or a Digital Subscriber Line (xDSL)), or anyother wired or wireless network. The network 104 may include multiplenetworks or subnetworks, each of which may include, for example, a wiredor wireless data pathway.

[0030] A host server 106 also may be connected to network 104 and may beused to faciltate some direct or indirect communications between theclient systems 102. As with the client systems 102, host server 106 maybe implemented using, for example, a general-purpose computer capable ofresponding to and executing instructions in a defined manner, a personalcomputer, a special-purpose computer, a workstation, a server, a device,a component, or other equipment or some combination thereof capable ofresponding to and executing instructions. Host server 106 may receiveinstructions from, for example, a software application, a program, apiece of code, a device, a computer, a computer system, or a combinationthereof, which independently or collectively direct operations, asdescribed herein. These instructions may take the form of one or morecommunications programs. For instance, such communications programs mayinclude e-mail programs, IM programs, FTP programs, VoIP programs, etc.The instructions may be embodied permanently or temporarily in any typeof machine, component, equipment, storage medium, or propagated signalthat is capable of being delivered to the host server 106.

[0031] Further, host server 106 includes a communications interface (notshown) used by the communications programs to send communicationsthrough network 104. The communications may include e-mail, audio data,video data, general binary data, or text data (e.g., encoded in AmericanStandard Code for Information Interchange (ASCII) format).

[0032]FIG. 2 illustrates an example interface presented to a user of oneof the client systems 102 when running an instant messaging clientprogram. Instant messaging programs typically allow users to communicatein real-time with each other in a variety of ways. For example, manyinstant messaging programs allow users to send text as an instantmessage, to transfer files, and to communicate by voice. Examples of IMcommunications include those provided by AIM (America Online InstantMessenger), AOL (America Online) Instant Messaging, Yahoo Messenger, MSNMessenger, and ICQ, among others.

[0033] Shown is a desktop 200 with a user interface 205 of the instantmessaging client program. User interface 205 has a text box 210 thatdisplays representations 215 of the program user's contacts or buddies(both terms are used interchangeably herein), which are other users ofan instant messaging program with whom the program user desires tocommunicate and interact. The representations 215 may provide contextualinformation to the program user about the buddy, such as whether thecontact is online, how long the contact has been online, whether thecontact is away, or whether the contact is using a mobile device.

[0034] The list of contacts displayed in text box 210 of user interface205 typically is referred to as the contact list or buddy list. Theprogram user can typically add or remove contacts from the contact list.In the example shown, the representations 215 are text icons showing thescreen names of the contacts.

[0035] Instant messaging programs may use an instant messaging server toassist in communications between users of the instant messaging program.The instant messaging server may be implemented, for example, using hostserver 106. When a user is connected to the network and executes theinstant messaging program, the instant messaging program contacts thehost server 106 and logs the user onto the host server 106. The hostserver 106 informs the instant messaging program when the program user'scontacts are online and facilitates communications between the programuser and an online contact.

[0036] The host server 106 may support IM services irrespective of aprogram user's network or Internet access. Thus, host server 106 mayallow users to send and receive IMs, regardless of whether they haveaccess to any particular Internet service provider (ISP). The hostserver 106 also may support associated services, such as administrativematters, advertising, directory services, chat, and interest groupsrelated to IM. To transfer data, the host server 106 employs one or morestandard or exclusive IM protocols.

[0037] To begin an IM session, the IM client program running on a clientsystem 102 establishes a connection with the host server 106 and logsonto the host server 106. Once a session is established, a user can usethe IM client program to view whether particular buddies are online,exchange IMs with particular buddies, participate in group chat rooms,trade files such as pictures, invitations or documents. The program useralso may be able to find other buddies with similar interests, getcustomized information such as news and stock quotes, and search theWorld Wide Web.

[0038] Host server 106 may assist IM communications between users of IMclient programs by facilitating the establishment of a peer-to-peercommunication session between the IM client programs. Or the host server106 may assist IM communications by directly routing communicationsbetween the IM client programs.

[0039] When a contact is online, the program user can communicate orinteract with the contact in a number of ways. For instance, the programuser can send an instant message to the contact (typically in the formof text). Sending a message opens up a window in which messages can betyped back-and-forth between the program user and the contact.Similarly, the program user also can send a file or other content to thecontact.

[0040] To initiate these actions for a contact, the program userperforms operations on the representation of the contact displayed inuser interface 205. The program then executes the corresponding actionin response to the operation performed on the representation. Forexample, an instant message might be initiated by double-clicking on acontact's representation. Or, a file transfer might be initiated by theprogram user selecting the contact's representation to bring up acontext menu and choosing “send a file” from the menu.

[0041] Other actions can be executed in response to operations performedon the representation of the contact displayed in interface 205. Forinstance, a “buddy icon” can be set for the contact such thatcommunications with the contact display the buddy icon. In addition, forexample, profile information about the contact can be retrieved, analert can be set to inform the program user when the contact is online,a VoIP communication session can be established, or an e-mail can besent.

[0042] User interface 205 may have icons 220 to help a user set variousoptions or perform operations in the instant messaging program. Byselecting the “setup” icon 225, for example, the program user can invokea window that allows for manual addition or removal of contacts from thebuddy list. Some of the icons 220 also may assist in initiatingcommunications or interactions. The “IM” icon 230, for instance, may beused as an alternative way to initiate instant messages. For instance,the program user can highlight the representation of a contact, andinitiate an instant message with that contact by selecting the “IM”icon.

[0043]FIG. 3A illustrates a process 300 used to facilitatecommunications between users across a network. An icon that represents acontact or set of contacts is provided (step 305). The term “icon” isused generally herein to denote any graphical representation of anobject. The icon is not part of an application user interface. That is,rather than being maintained in and as an integral part of anapplication user interface, the icon is independent of at least thecommunication program interface, and perhaps any application userinterfaces.

[0044] When operations are performed on the icon, they are recognized(step 310). Various operations can be performed on the icon. Forexample, a user may “double-click” on the icon by using an input devicelike a mouse to point a cursor at the icon and pressing a button of themouse twice. A user may “right-click” on the icon by using an inputdevice like a mouse with a left and right button to point a cursor atthe icon and pressing the right button of the mouse. A user may selectthe icon in such a way that brings up a context menu (e.g., byright-clicking on the icon) and select an option from the context menu.A user may drag-and-drop other icons onto the icon representing thecontact or set of contacts (further described below). The iconrepresenting the contact may itself be dragged and dropped onto anothericon or onto the user interface of an application.

[0045] In response to operations performed on the icon, at least oneaction related to the contact or set of contacts represented by the iconis executed (step 315). For instance, the action can include sending anIM, sending a file, setting a buddy icon, retrieving profile informationabout the contact, setting an alert for when the contact comes online,establishing a VoIP communication session, or sending an e-mail. Theseactions may be the same actions that would be executed in response to anoperation performed on a representation of the contact or set ofcontacts in a user interface of the communications program. Thus, theicon may provide an interface for initiating actions related to acontact from outside of a communication program's user interface.

[0046]FIG. 3B illustrates another process 320 used to facilitatecommunications between users across a network. In process 320, anexecutable file that is associated with a contact or set of contacts isprovided (step 325). Various commands can be issued to the file. When acommand is issued to the file, the issued command is recognized (step330). In response to the issued command, the file causes a correspondingaction to be executed (step 335). The action is related to communicatingwith the contact(s) associated with the file. The commands can be issuedto the file while the file is already executing, as part of a command toexecute the file, or as a combined command that executes the file andresults in the action being executed (i.e., the same command may be usedto execute the file and cause the action to be executed).

[0047] The file may be located in either graphical or non-graphicaloperating system environments. When the executable file is in agraphical environment, it may be represented by an icon. For example, inMicrosoft Windows® and Macintosh OS X environments, most files arerepresented by icons. As a result, providing a file in such anenvironment typically results in an icon also being provided. Thecommands issued to execute the file may be graphical operationsperformed on the icon. For example, the commands may generally include“double-clicking” on the icon, “right-clicking” on the icon, draggingand dropping files onto the icon, or dragging and dropping the icon ontoanother icon or onto the user interface of an application. Such animplementation of process 320 is similar to the implementation describedwith respect to FIG. 3A.

[0048] When the executable file is in a non-graphical environment, thecommands may be issued to the executable file using command lines. Thecommands may take the form of parameters passed to the executableprogram from the command line. The parameters may either be passed tothe executable while it is already executing, or the parameters may bepassed as part of a command that causes the executable file to execute.

[0049] The actions executed in response to an issued command maygenerally include, for example, sending an IM, sending a file, setting abuddy icon, retrieving profile information about the contact, setting analert for when the contact comes online, establishing a VoIPcommunication session, or sending an e-mail. These actions may be thesame actions that would be executed in response to an operationperformed on a representation of the contact or set of contacts in auser interface of the communications program. Thus, the file acts as aproxy for initiating actions related to a contact from outside of acommunication program's user interface.

[0050]FIG. 4 illustrates a process 400 for using drag-and-drop featureswith an icon that represents a contact or set of contacts, providing anintuitive interface for actions such as transferring files or text. Theicon that represents the contact or set of contacts is providedindependent from an application user interface, as described above withrespect to FIG. 3 (step 405). The icon provides an interface forinitiating the transfer of information to the contact(s) it representsfrom outside of any application's user interface (e.g., on the desktopor in a file folder).

[0051] When a user wants to transfer information to the contact or setof contacts represented by this icon, the user drags and drops a secondicon that represents the information onto the icon representing thecontact or set of contacts. The information may be any type of data,including e-mail, audio data, video data, general binary data, or textdata.

[0052] The drop is recognized (step 410) and results in the informationrepresented by the second icon being automatically transferred to thecontact or set of contacts (step 415). The information can betransmitted to the contact in any known manner. For instance, apeer-to-peer connection can be established and, if the information is inthe form of a general binary file, it may be transmitted using astandard or proprietary file transfer protocol. Or, if the informationis, for example, streaming audio or video, the information may betransmitted on the peer-to-peer connection using the real-time protocol(RTP) and real-time streaming protocol (RTSP). Similarly, if theinformation is a text file, the peer-to-peer connection may be used totransfer the text in the text file as an IM.

[0053] Alternatively, a host server may be used to assist in thetransmission of the information. For instance, if the information is atext file, the host server may relay the text file to the contact as anIM. Or, if the information is in the form of a general binary file, itmay be transmitted to the host server, which relays it to the contactusing a standard or proprietary file transfer protocol. Likewise,streaming audio or video can be transmitted to the host server, whichthen relays it to the contact.

[0054] FIGS. 5A-5F illustrate one implementation of the above techniquesfor an instant messaging program. Shown is a desktop 500 with a userinterface 205 of the instant messaging program. User interface 205 has atext box 210 that displays representations 215 of the program user'scontacts. In the example illustrated, one contact, whose screen name is“randomcontact,” is listed.

[0055] An icon 520 is located on desktop 500. Icon 520 represents theprogram user's contact “randomcontact.” Icon 520 is not part of anyapplication user interface. Rather, icon 520 is displayed independent ofan application user interface. Icon 520 is associated with an executableprogram or script that is invoked for some operations performed on icon500. The executable program communicates with the instant messagingprogram to accomplish the actions to be executed in response to theoperations performed on icon 520. The executable program may communicatewith the instant messaging program using any known inter-applicationcommunications protocol, such as, for example, Apple Events ifimplemented for a Macintosh OS X environment or dynamic data exchange(DDE) if implemented for a Microsoft Windows® environment. While shownon desktop 500, icon 520 can be moved like any other file and located ina file system folder, if desired.

[0056] Thus, a user can initiate actions related to the contact“randomcontact” by performing operations on icon 520. As describedabove, various types of operations can be performed on icon 520, such as“double-clicking” on icon 520, “right-clicking” on icon 520, draggingand dropping other icons onto icon 520, or dragging and dropping icon520 onto another icon or onto the user interface of an application.

[0057] The executable program is invoked when operations are performedon icon 520 that correspond to actions related to the contactrepresented by icon 520. When invoked, the executable program in turnmay invoke the instant messaging program if the instant messagingprogram is not already executing. The invocation of the instantmessaging program may or may not be made known to the user. For example,invocation of the instant messaging program may be made known to theuser by presenting the instant messaging program's interface to the userin the same manner as it would be presented if the user had directlyinvoked the program. Or, an icon can be displayed in the system tray(if, for example, the techniques are implemented for a MicrosoftWindows® environment).

[0058] As an alternative to invoking the instant messaging program, theexecutable program may queue the actions until the instant messagingprogram is invoked by the user. In this case, when the instant messagingprogram is subsequently invoked the executable program will communicatewith the instant messaging client program to accomplish the actions.

[0059] When the instant messaging program is running, the executableprogram passes the screen name of the contact that icon 520 represents(i.e., “randomcontact”) to the instant messaging program, along with anindication of the action to be executed and any other necessaryinformation needed to perform the action (e.g., filename). The instantmessaging program accepts this information and executes the actioncorresponding to the operations performed on icon 520.

[0060] As an example of operations that can be performed, adrag-and-drop file transfer is described with respect to FIGS. 5B-5D. Anicon 505 on desktop 500 represents a general binary file. To transferthe file to the contact “randomcontact,” the user drags and drops icon505 onto icon 520. To drag icon 505 onto icon 520, the user firstselects icon 505, for example, by pointing at it and pressing a mousebutton. The user then drags the icon 505 towards icon 520. As the userdrags the icon across desktop 500, a second transparent image 510 oficon 520 shows the user where icon 505 is being dragged. Once icon 505is on top of icon 520 (as shown in FIG. 5C), the user drops icon 505,for example, by releasing the mouse button.

[0061] When the user drops icon 505 onto icon 520, the executableprogram associated with icon 520 is invoked. The executable programdetermines whether the instant messaging program is executing and loggedonto the host server. If the instant messaging program is not executingor is not logged on, the executable program invokes the instantmessaging program and causes it to log onto the host server.

[0062] When the instant messaging program is executing and is logged on(whether it was originally or was invoked by the executable program),the executable program passes to the instant messaging program thescreen name that icon 520 represents (in the case shown,“randomcontact”), the filename, and an indication that the file shouldbe transferred.

[0063] The instant messaging program then initiates a file transfer tothe contact. To do so, the instant messaging program contacts the hostserver and indicates that a file transfer to the contact is desired. Thehost server indicates to the contact that the program user wishes totransfer the file and seeks permission from the contact for the file tobe transferred. As long as the contact grants permission for the file tobe transferred, the host server returns the address of the contact tothe instant messaging program, along with an indication that thetransfer is allowed.

[0064] The instant messaging program then sets up a peer-to-peerconnection with the contact's instant messaging program and transfersthe file. As the file is being transferred, the instant messagingprogram may display a file transfer status dialog 515 (shown in FIG.5D). File transfer status dialog 515 shows the current status of thefile transfer. As shown, it displays the recipient, which in this caseis “randomcontact.” It also displays the filename of the file beingtransferred (Figures.pdf), the transfer rate (40K/s), and the number ofbytes already transferred (110K). Once the transfer is completed,feedback (e.g., a sound) may be provided to the user to indicate thetransfer is completed and file status dialog 515 is closed.

[0065] Similar to a file transfer, drag-and-drop instant messagesessions can be supported when a user drops a text file onto icon 520.Thus, for example, if the file shown in FIG. 5B was named Figures.txtand contained ASCII text, then an instant message would be initiatedwhen it is dropped on icon 520, rather than a file transfer. In thiscase, when the text file is dropped, the executable program retrievesthe text from the file. The executable program then passes the screenname that icon 520 represents and the text to the instant messagingprogram, along with an indication that the text is to be sent as aninstant message. The instant messaging program then contacts a hostserver and transmits the text and screen name to the host server. Thehost server then directly communicates the text to the contact as aninstant message.

[0066]FIGS. 5E and 5F illustrate an alternative (or additional) mannerin which instant messaging sessions can be supported by allowing a userto “copy” text from a document and “paste” it onto icon 520. Referringto FIG. 5E, a desktop 500 is shown with a user interface 525 of a texteditor application. The interface 525 of the text editor has a text box545 in which a user can type text, such as the text 530. The user canalso “select” text 530, for example, by pressing a mouse button anddragging a pointer across the text 530. This results in text 530 beinghighlighted as shown.

[0067] After a user selects text 530, the user can “copy” the text, forexample, by pressing a mouse button while the pointer is over the textto bring up a context menu 535 and selecting “copy” from the contextmenu 535. When copied, text 530 is stored by the operating system in asection of memory typically referred to as the “clipboard.”

[0068] After text 530 has been copied, a user can then “paste” the text530 to icon 520. Referring to FIG. 5F, the user pastes the text 530 toicon 520, for example, by pressing a mouse button while the pointer isover icon 520 to bring up a context menu 540 and selecting “paste” fromthe context menu 540. Selecting paste results in the executable programretrieving the text stored in the section of memory referred to as theclipboard. The executable program then passes the screen name that icon520 represents and the text to the instant messaging program, along withan indication that the text is to be sent as an instant message. Theinstant messaging program then contacts a host server and transmits thetext and screen name to the host server. The host server then directlycommunicates the text to the contact as an instant message.

[0069] Likewise, other operations may be performed on icon 520 toexecute corresponding actions related to the contact represented by icon520. For instance, right-clicking on icon 520 may bring up a contextmenu that has an option to set an alert when the contact comes online.Selecting the option results in the alert being set for the contact orset of contacts. Or, double-clicking on the icon may bring up profileinformation about the contact that icon 520 represents.

[0070] In addition, icon 520 may indicate the online presence of thecontact it represents. A number of different techniques may be used toindicate online presence. For example, the shape or color of icon 520may be different when the contact is online as opposed to when thecontact is not online. Or, the contact's online status may be includedin profile information that is displayed when a user double-clicks onicon 520. Similarly, icon 520 may show other contextual informationregarding the contact, such as how long the contact has been online,whether the contact is away, or whether the contact is using a mobiledevice.

[0071] While the executable program has been described as communicatingwith the instant messaging program to accomplish the actions, in otherimplementations the executable program may be able to directly executethe actions itself without the need for an external program such as theinstant messaging program.

[0072] Some implementations of the described techniques also may supporta drag-and-drop method of creating the icon representing a contact. Inthis case, the icon can be created by dragging and dropping arepresentation of the contact in the user interface of thecommunications program onto an area other than the user interface.

[0073] FIGS. 6A-6C illustrate a drag-and-drop manner of creating theicon in one implementation for an instant messaging program. To createthe icon that represents the contact “randomcontact,” the user selectsthe representation 215 of “randomcontact” in the instant messagingprogram's user interface 205 and drags that representation onto an areaother than interface 205, such as desktop 600. To drag representation215 onto desktop 600, the user first selects representation 215, forinstance, by pointing at it and pressing a mouse button (shown in FIG.6A). The user then drags representation 215 towards desktop 600 (shownin FIG. 6B). As the user drags the icon towards desktop 600, atransparent image 605 shows the user where the representation 215 isbeing dragged. Once image 605 is on top of desktop 600, the user dropsimage 605 by releasing the mouse button. When the user drops image 605onto desktop 600, the icon 610 representing the contact is created(shown in FIG. 6C). Icon 610 also is associated with the correspondingexecutable program, or the executable program is created if it does notexist.

[0074] One implementation of creating the icon and executable program ina Macintosh OS X operating system environment uses a “skeleton”executable program and icon that are not specific to any particularcontact. When representation 215 is dragged and dropped onto an areaother than interface 205, the operating system performs a callback toinform the instant messaging program that representation 215 has beendropped. The instant messaging program then copies the skeletonexecutable program to the location where representation 215 was dropped.The copied executable program is given the name of the contact. Thisresults in the icon being displayed with the screen name of the contact.

[0075] After the executable program is copied, the instant messagingprogram loads a static text string that contains substitution tokens.The instant messaging program then replaces the substitution tokens withthe screen name of the contact. The resulting text is an uncompiledAppleScript. The instant messaging program compiles the AppleScript andinserts it into a resource in the executable program. Thus, once theexecutable program is created it is unique to that screen name and doesnot rely on any external data for that association to persist. Similarimplementations can be applied to other operating system environments.

[0076] Some implementations of the described techniques also may supporta drag-and-drop method of adding a contact to the contact list using theicon that represents the contact.

[0077] FIGS. 7A-7C illustrate a drag-and-drop manner of adding a contactto the contact list in one implementation for an instant messagingprogram. An icon 705 representing a contact is located on desktop 700.Icon 705 may have been placed on desktop in any manner. For instance, itmay have been created on desktop 700 (e.g., by dragging and droppingfrom a first instant messaging program as described above) or moved ontodesktop 700 after being created in a location other than the desktop.Or, a user of an instant messaging program on a different client systemmay have created icon 705 and transferred it to the client systemproviding desktop 700.

[0078] To add the contact represented by icon 705 to the contact list inthe instant messaging program's user interface 205, the user selectsicon 705 and drags it from the desktop (or other location) onto userinterface 205. To drag icon 705 onto interface 205, the user firstselects icon 705 and drags it towards interface 205 (shown in FIG. 7B).As the user drags the icon towards interface 205, a transparent image710 shows the user where icon 705 is being dragged. Once image 710 is ontop of interface 205, the user drops image 710. When the user dropsimage 710, the operating system informs the instant messaging programthat image 710 has been dropped on interface 205. As a result, theinstant messaging program obtains the screen name of the contact, addsthe contact to the contact list, and creates the representation 215 ofthe contact in user interface 205 (shown in FIG. 7C). If the screen nameis internally stored in the executable program corresponding to the icon(e.g., similar to the above described implementation for creating theicon and executable program in a Macintosh OS X operating systemenvironment), the instant messaging program may communicate with theexecutable to obtain the screen name of the contact. Alternatively, ifthe filename of the executable program is the screen name of thecontact, the instant messaging program may obtain the screen name fromthe filename of the executable.

[0079] Communications programs, including instant messaging programs,may allow a user to group contacts together in groups or sets. Thedescribed techniques can be applied to such groups or sets also. Thus,while some implementations have been shown using an icon that representsa single contact, the described techniques also may be used to providean icon that represents a group or set of contacts in addition, or as analternative, to providing an icon that represents a single contact.

[0080]FIG. 8 illustrates an implementation in which multiple icons, eachrepresenting either a contact or set of contacts, are situated in adesktop file folder. As shown, a file folder 805 is located on a desktop800. The name of file folder 805 is “buddies.” The contents of filefolder 805 are displayed by opening it, for example, by double-clickingon file folder 805. When file folder is opened, a window 810 isdisplayed that shows the contents of file folder 805. Window 810 has awindow area 815 in which the multiple icons are displayed. A first icon820 represents the contact whose screen name is “randomcontact.” Asecond icon 825 represents a set of contacts, collectively grouped as“co-workers.” A third icon 830 represents the contact whose screen nameis “randomcontact2.”

[0081] A user can perform operations on any of the icons 820, 825, or830 to cause actions to be executed for the contact represented by therespective icon, as described above. For instance, the program user candrop a binary file onto icon 820 to transfer the file to randomcontact.The program user can drop a text file (or paste text) on icon 825 to,depending upon a specified configuration, initiate a group chat sessionwith the set of contacts grouped as “co-workers” or to invokeindependent chat sessions with each contact in the “co-workers” group.The program user also, for instance, may set an alert for whenrandomcontact2 comes online by selecting icon 830 to bring up a contextmenu and selecting an alert option from the menu. In addition, icons820, 825, and 830 may indicate the online presence, or other contextualinformation, of the respective contact it represents, also as describedabove.

[0082] The techniques described above are not limited to any particularhardware or software configuration. Rather, they may be implementedusing hardware, software, or a combination of both. The methods andprocesses described may be implemented as computer programs that areexecuted on device comprising at least one processor and at least onedata storage system (e.g., programmable computer, cellular phone,personal digital assistant, etc.). The data storage system may be anytype of storage medium or device usable with a processor (e.g., CD-ROM,RAM, or magnetic disk). The programs may be implemented in a high-levelprogramming language and may also be implemented in assembly or otherlower level languages, if desired.

[0083] Any such program will typically be stored on a computer-usablestorage medium or device (e.g., CD-ROM, RAM, or magnetic disk). Whenread into the processor of the computer and executed, the instructionsof the program cause the programmable computer to carry out the variousoperations described.

[0084] Furthermore, while the techniques have been described primarilywith IM applications, they may be applied to other communicationsprograms such as FTP programs, e-mail programs, voice-over-IP (VoIP) orother telephony programs, or players for streaming media.

[0085] Other implementations are also within the scope of the followingclaims.

What is claimed is:
 1. A method of facilitating communications across anetwork between users of at least one communications program, the methodcomprising: providing an icon that represents a contact or set ofcontacts, wherein the icon is independent of a user interface of thecommunications program; recognizing that an operation has been performedon the icon; and executing at least one action in response to theoperation performed on the icon, wherein the action is the same as anaction that would be executed in response to an operation performed on arepresentation of the contact or set of contacts in the user interfaceof the communications program.
 2. The method of claim 1 wherein the iconis independent of any application user interface.
 3. The method of claim1 wherein the operation comprises associating information to betransmitted to the contact or set of contacts with the icon representingthe contact or set of contacts.
 4. The method of claim 3 whereinassociating the information comprises dropping an icon representing theinformation to be transmitted to the contact or set of contacts on theicon representing the contact or set of contacts.
 5. The method of claim4 wherein executing at least one action comprises: detecting that theicon representing information to be transmitted to the contact or set ofcontacts has been dropped on the icon representing the contact or set ofcontacts, and automatically transmitting the information represented bythe dropped icon to the contact or set of contacts in response to theicon representing information to be transmitted being dropped on theicon representing the contact or set of contacts.
 6. The method of claim5 wherein the information to be transmitted comprises a file, such thatthe file is automatically transmitted to the contacts or set of contactsin response to the icon representing the file being dropped on the iconrepresenting the contact or set of contacts.
 7. The method of claim 6wherein automatically transmitting the file further comprises:automatically establishing a communication session with the contact orset of contacts in response to the icon representing the file beingdropped on the icon representing the contact or set of contacts; andtransmitting the file to the contact or set of contacts via thecommunication session.
 8. The method of claim 5 wherein the informationto be transmitted comprises a textual message such that the textualmessage is automatically transmitted to the contacts or set of contactsin response to the icon representing the textual message being droppedon the icon representing the contact or set of contacts.
 9. The methodof claim 8 wherein transmitting comprises transmitting the textualmessage to the contact or set of contacts via a host server.
 10. Themethod of claim 1 wherein the communications program comprises aninstant messaging program.
 11. The method of claim 1 wherein the contactor set of contacts is a single contact.
 12. The method of claim 1wherein the icon that represents a contact or set of contacts isavailable when the communications program is not executing.
 13. Themethod of claim 12 further comprising invoking the communicationsprogram in response to the operation performed on the icon thatrepresents a contact or set of contacts.
 14. A method of facilitatingthe transfer of information between computer users on a network:providing a first icon that represents a contact or set of contacts andthat is independent of an application interface; recognizing that asecond icon has been dropped onto the first icon, wherein the secondicon represents information to be transmitted to the contact or set ofcontacts represented by the first icon; and automatically transmittingthe information represented by the second icon to the contact or set ofcontacts in response to the second icon being dropped on the first icon.15. The method of claim 14 wherein the information to be transmittedcomprises a file, such that the file is automatically transmitted to thecontacts or set of contacts in response to the icon representing thefile being dropped on the icon representing the contact or set ofcontacts.
 16. The method of claim 15 wherein automatically transmittingthe file further comprises: automatically establishing a communicationsession with the contact or set of contacts in response to the iconrepresenting the file being dropped on the icon representing the contactor set of contacts; and transmitting the file to the contact or set ofcontacts via the communication session.
 17. The method of claim 14wherein the information to be transmitted comprises a textual messagesuch that the textual message is automatically transmitted to thecontacts or set of contacts in response to the icon representing thetextual message being dropped on the icon representing the contact orset of contacts.
 18. The method of claim 17 wherein the textual messageis transmitted to the contact or set of contacts via a host server. 19.A method of facilitating communications across a network between usersof at least one communications program, the method comprising: providinga file that is associated with a contact or set of contacts; recognizingthat a command has been issued to the file; and executing at least oneaction in response to the command issued to the file, wherein the actionis the same as an action that would be executed in response to anoperation performed on a representation of the contact or set ofcontacts in a user interface of the communications program.
 20. Themethod of claim 19 further comprising representing the file with anicon.
 21. The method of claim 20 wherein the commands comprise graphicalcommands such that the issued commands are graphical operationsperformed on the icon representing the file.
 22. The method of claim 21wherein the operations comprise associating information to betransmitted to the contact or set of contacts with the icon representingthe file.
 23. The method of claim 22 wherein associating the informationcomprises dropping an icon representing the information to betransmitted to the contact or set of contacts on the icon representingthe file.
 24. The method of claim 23 wherein executing at least oneaction comprises: detecting that the icon representing information to betransmitted to the contact or set of contacts has been dropped on theicon representing the file, and automatically transmitting theinformation represented by the dropped icon to the contact or set ofcontacts in response to the icon representing information to betransmitted being dropped on the icon representing the file.
 25. Themethod of claim 24 wherein the information to be transmitted comprises afile, such that the file is automatically transmitted to the contacts orset of contacts in response to the icon representing the file beingdropped on the icon representing the file associated with the contact orset of contacts.
 26. The method of claim 25 wherein automaticallytransmitting the file further comprises: automatically establishing acommunication session with the contact or set of contacts in response tothe icon representing the file being dropped on the icon representingthe file associated with the contact or set of contacts; andtransmitting the file to the contact or set of contacts via thecommunication session.
 27. The method of claim 24 wherein theinformation to be transmitted comprises a textual message such that thetextual message is automatically transmitted to the contacts or set ofcontacts in response to the icon representing the textual message beingdropped on the icon representing the file associated with the contact orset of contacts.
 28. The method of claim 27 wherein transmittingcomprises transmitting the textual message to the contact or set ofcontacts via a host server.
 29. The method of claim 21 wherein the iconrepresenting the file associated with the contact or set of contacts isavailable when the communications program is not executing.
 30. Themethod of claim 29 further comprising invoking the communicationsprogram in response to the operation performed on the icon thatrepresents the file associated with the contact or set of contacts. 31.The method of claim 19 wherein the communications program comprises aninstant messaging program.
 32. The method of claim 19 wherein thecontact or set of contacts is a single contact.
 33. A computer-usablemedium storing a computer program for facilitating communications acrossa network between users of at least one communications program, thecomputer program comprising instructions for causing a computer to:provide an icon that represents a contact or set of contacts, whereinthe icon is independent of a user interface of the communicationsprogram; recognize that an operation has been performed on the icon; andexecute at least one action in response to the operation performed onthe icon, wherein the action is the same as an action that would beexecuted in response to an operation performed on a representation ofthe contact or set of contacts in the user interface of thecommunications program.
 34. The computer-usable medium of claim 33wherein the icon is independent of any application user interface. 35.The computer-usable medium of claim 33 wherein the operation comprisesassociating information to be transmitted to the contact or set ofcontacts with the icon representing the contact or set of contacts. 36.The computer-usable medium of claim 35 wherein associating theinformation comprises dropping an icon representing the information tobe transmitted to the contact or set of contacts on the iconrepresenting the contact or set of contacts.
 37. The computer-usablemedium of claim 36 wherein, to execute at least one action, the computerprogram further comprises instruction for causing a computer to: detectthat the icon representing information to be transmitted to the contactor set of contacts has been dropped on the icon representing the contactor set of contacts, and automatically transmit the informationrepresented by the dropped icon to the contact or set of contacts inresponse to the icon representing information to be transmitted beingdropped on the icon representing the contact or set of contacts.
 38. Thecomputer-usable medium of claim 37 wherein the information to betransmitted comprises a file, such that the file is automaticallytransmitted to the contacts or set of contacts in response to the iconrepresenting the file being dropped on the icon representing the contactor set of contacts.
 39. The computer-usable medium of claim 38 wherein,to automatically transmit the file, the computer program furthercomprises instruction for causing a computer to: automatically establisha communication session with the contact or set of contacts in responseto the icon representing the file being dropped on the icon representingthe contact or set of contacts; and transmit the file to the contact orset of contacts via the communication session.
 40. The computer-usablemedium of claim 37 wherein the information to be transmitted comprises atextual message such that the textual message is automaticallytransmitted to the contacts or set of contacts in response to the iconrepresenting the textual message being dropped on the icon representingthe contact or set of contacts.
 41. The computer-usable medium of claim40 wherein transmitting comprises transmitting the textual message tothe contact or set of contacts via a host server.
 42. Thecomputer-usable medium of claim 33 wherein the communications programcomprises an instant messaging program.
 43. The computer-usable mediumof claim 33 wherein the contact or set of contacts is a single contact.44. The computer-usable medium of claim 33 wherein the icon thatrepresents a contact or set of contacts is available when thecommunications program is not executing.
 45. The computer-usable mediumof claim 44 wherein the computer program further comprises instructionfor causing a computer to invoke the communications program in responseto the operation performed on the icon that represents a contact or setof contacts.
 46. A computer-usable medium storing a computer program forfacilitating the transfer of information between computer users on anetwork, the computer program comprising instructions for causing acomputer to: provide a first icon that represents a contact or set ofcontacts and that is independent of an application interface; recognizethat a second icon has been dropped onto the first icon, wherein thesecond icon represents information to be transmitted to the contact orset of contacts represented by the first icon; and automaticallytransmit the information represented by the second icon to the contactor set of contacts in response to the second icon being dropped on thefirst icon.
 47. The computer-usable medium of claim 46 wherein theinformation to be transmitted comprises a file, such that the file isautomatically transmitted to the contacts or set of contacts in responseto the icon representing the file being dropped on the icon representingthe contact or set of contacts.
 48. The computer-usable medium of claim47 wherein, to automatically transmit the file, the computer programfurther comprises instructions for causing a computer to: automaticallyestablish a communication session with the contact or set of contacts inresponse to the icon representing the file being dropped on the iconrepresenting the contact or set of contacts; and transmit the file tothe contact or set of contacts via the communication session.
 49. Thecomputer-usable medium of claim 46 wherein the information to betransmitted comprises a textual message such that the textual message isautomatically transmitted to the contacts or set of contacts in responseto the icon representing the textual message being dropped on the iconrepresenting the contact or set of contacts.
 50. The computer-usablemedium of claim 49 wherein the textual message is transmitted to thecontact or set of contacts via a host server.
 51. A computer-usablemedium storing a computer program for facilitating communications acrossa network between users of at least one communications program, thecomputer program comprising instructions for causing a computer to:provide a file that is associated with a contact or set of contacts;recognize that a command has been issued to the file; and execute atleast one action in response to the command issued to the file, whereinthe action is the same as an action that would be executed in responseto an operation performed on a representation of the contact or set ofcontacts in a user interface of the communications program.
 52. Thecomputer-usable medium of claim 51 wherein the computer program furthercomprises instructions for causing a computer to represent the file withan icon.
 53. The computer-usable medium of claim 52 wherein the commandscomprise graphical commands such that the issued commands are graphicaloperations performed on the icon representing the file.
 54. Thecomputer-usable medium of claim 53 wherein the operations compriseassociating information to be transmitted to the contact or set ofcontacts with the icon representing the file.
 55. The computer-usablemedium of claim 54 wherein associating the information comprisesdropping an icon representing the information to be transmitted to thecontact or set of contacts on the icon representing the file.
 56. Thecomputer-usable medium of claim 55 wherein, to execute at least oneaction, the computer program further comprises instructions for causinga computer to: detect that the icon representing information to betransmitted to the contact or set of contacts has been dropped on theicon representing the file, and automatically transmit the informationrepresented by the dropped icon to the contact or set of contacts inresponse to the icon representing information to be transmitted beingdropped on the icon representing the file.
 57. The computer-usablemedium of claim 56 wherein the information to be transmitted comprises afile, such that the file is automatically transmitted to the contacts orset of contacts in response to the icon representing the file beingdropped on the icon representing the file associated with the contact orset of contacts.
 58. The computer-usable medium of claim 57 wherein, toautomatically transmit the file, the computer program further comprisesinstructions for causing a computer to: automatically establish acommunication session with the contact or set of contacts in response tothe icon representing the file being dropped on the icon representingthe file associated with the contact or set of contacts; and transmitthe file to the contact or set of contacts via the communicationsession.
 59. The computer-usable medium of claim 56 wherein theinformation to be transmitted comprises a textual message such that thetextual message is automatically transmitted to the contacts or set ofcontacts in response to the icon representing the textual message beingdropped on the icon representing the file associated with the contact orset of contacts.
 60. The computer-usable medium of claim 59 whereintransmitting comprises transmitting the textual message to the contactor set of contacts via a host server.
 61. The computer-usable medium ofclaim 53 wherein the icon representing the file associated with thecontact or set of contacts is available when the communications programis not executing.
 62. The computer-usable medium of claim 61 wherein thecomputer program further comprises instructions for causing a computerto invoke the communications program in response to the operationperformed on the icon that represents the file associated with thecontact or set of contacts.
 63. The computer-usable medium of claim 51wherein the communications program comprises an instant messagingprogram.
 64. The computer-usable medium of claim 51 wherein the contactor set of contacts is a single contact.
 65. A device comprising: atleast one processor; at least one data storage system; wherein the datastorage system has a program stored therein, the program havinginstructions that cause the processor to perform the following: providean icon that represents a contact or set of contacts, wherein the iconis independent of a user interface of the communications program;recognize that an operation has been performed on the icon; and executeat least one action in response to the operation performed on the icon,wherein the action is the same as an action that would be executed inresponse to an operation performed on a representation of the contact orset of contacts in the user interface of the communications program. 66.The device of claim 65 wherein the icon is independent of anyapplication user interface.
 67. The device of claim 65 wherein theoperation comprises associating information to be transmitted to thecontact or set of contacts with the icon representing the contact or setof contacts.
 68. The device of claim 67 wherein associating theinformation comprises dropping an icon representing the information tobe transmitted to the contact or set of contacts on the iconrepresenting the contact or set of contacts.
 69. The device of claim 68wherein, to execute at least one action, the program further comprisesinstruction for causing the processor to: detect that the iconrepresenting information to be transmitted to the contact or set ofcontacts has been dropped on the icon representing the contact or set ofcontacts, and automatically transmit the information represented by thedropped icon to the contact or set of contacts in response to the iconrepresenting information to be transmitted being dropped on the iconrepresenting the contact or set of contacts.
 70. The device of claim 69wherein the information to be transmitted comprises a file, such thatthe file is automatically transmitted to the contacts or set of contactsin response to the icon representing the file being dropped on the iconrepresenting the contact or set of contacts.
 71. The device of claim 70wherein, to automatically transmit the file, the program furthercomprises instruction for causing the processor to: automaticallyestablish a communication session with the contact or set of contacts inresponse to the icon representing the file being dropped on the iconrepresenting the contact or set of contacts; and transmit the file tothe contact or set of contacts via the communication session.
 72. Thedevice of claim 69 wherein the information to be transmitted comprises atextual message such that the textual message is automaticallytransmitted to the contacts or set of contacts in response to the iconrepresenting the textual message being dropped on the icon representingthe contact or set of contacts.
 73. The device of claim 72 whereintransmitting comprises transmitting the textual message to the contactor set of contacts via a host server.
 74. The device of claim 65 whereinthe communications program comprises an instant messaging program. 75.The device of claim 65 wherein the contact or set of contacts is asingle contact.
 76. The device of claim 65 wherein the icon thatrepresents a contact or set of contacts is available when thecommunications program is not executing.
 77. The device of claim 76wherein the program further comprises instruction for causing theprocessor to invoke the communications program in response to theoperation performed on the icon that represents a contact or set ofcontacts.
 78. A device comprising: at least one processor; at least onedata storage system; wherein the data storage system has a programstored therein, the program having instructions that cause the processorto perform the following: provide a first icon that represents a contactor set of contacts and that is independent of an application interface;recognize that a second icon has been dropped onto the first icon,wherein the second icon represents information to be transmitted to thecontact or set of contacts represented by the first icon; andautomatically transmit the information represented by the second icon tothe contact or set of contacts in response to the second icon beingdropped on the first icon.
 79. The device of claim 78 wherein theinformation to be transmitted comprises a file, such that the file isautomatically transmitted to the contacts or set of contacts in responseto the icon representing the file being dropped on the icon representingthe contact or set of contacts.
 80. The device of claim 79 wherein, toautomatically transmit the file, the program further comprisesinstructions for causing the processor to: automatically establish acommunication session with the contact or set of contacts in response tothe icon representing the file being dropped on the icon representingthe contact or set of contacts; and transmit the file to the contact orset of contacts via the communication session.
 81. The device of claim78 wherein the information to be transmitted comprises a textual messagesuch that the textual message is automatically transmitted to thecontacts or set of contacts in response to the icon representing thetextual message being dropped on the icon representing the contact orset of contacts.
 82. The device of claim 81 wherein the textual messageis transmitted to the contact or set of contacts via a host server. 83.A device comprising: at least one processor; at least one data storagesystem; wherein the data storage system has a program stored therein,the program having instructions that cause the processor to perform thefollowing: provide an file that is associated with a contact or set ofcontacts; recognize that a command has been issued to the file; andexecute at least one action in response to the command issued to thefile, wherein the action is the same as an action that would be executedin response to an operation performed on a representation of the contactor set of contacts in a user interface of the communications program.84. The device of claim 83 wherein the program further comprisesinstructions for causing the processor to represent the file with anicon.
 85. The device of claim 84 wherein the commands comprise graphicalcommands such that the issued commands are graphical operationsperformed on the icon representing the file.
 86. The device of claim 85wherein the operations comprise associating information to betransmitted to the contact or set of contacts with the icon representingthe file.
 87. The device of claim 86 wherein associating the informationcomprises dropping an icon representing the information to betransmitted to the contact or set of contacts on the icon representingthe file.
 88. The device of claim 87 wherein, to execute at least oneaction, the program further comprises instructions for causing theprocessor to: contacts has been dropped on the icon representing thefile, and automatically transmit the information represented by thedropped icon to the contact or set of contacts in response to the iconrepresenting information to be transmitted being dropped on the iconrepresenting the file.
 89. The device of claim 88 wherein theinformation to be transmitted comprises a file, such that the file isautomatically transmitted to the contacts or set of contacts in responseto the icon representing the file being dropped on the icon representingthe file associated with the contact or set of contacts.
 90. The deviceof claim 89 wherein, to automatically transmit the file, the programfurther comprises instructions for causing the processor to:automatically establish a communication session with the contact or setof contacts in response to the icon representing the file being droppedon the icon representing the file associated with the contact or set ofcontacts; and transmit the file to the contact or set of contacts viathe communication session.
 91. The device of claim 88 wherein theinformation to be transmitted comprises a textual message such that thetextual message is automatically transmitted to the contacts or set ofcontacts in response to the icon representing the textual message beingdropped on the icon representing the file associated with the contact orset of contacts.
 92. The device of claim 91 wherein transmittingcomprises transmitting the textual message to the contact or set ofcontacts via a host server.
 93. The device of claim 85 wherein the iconrepresenting the file associated with the contact or set of contacts isavailable when the communications program is not executing.
 94. Thedevice of claim 93 wherein the program further comprises instructionsfor causing the processor to invoke the communications program inresponse to the operation performed on the icon that represents the fileassociated with the contact or set of contacts.
 95. The device of claim83 wherein the communications program comprises an instant messagingprogram.
 96. The device of claim 83 wherein the contact or set ofcontacts is a single contact.